home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 7 / Gekikoh Dennoh Club Vol. 7 (Japan).7z / Gekikoh Dennoh Club Vol. 7 (Japan) (Track 01).bin / games / otoko / source.lzh / FuncEnemy / lboss02h.c < prev    next >
C/C++ Source or Header  |  1999-06-14  |  2KB  |  79 lines

  1. /* 2面ボス頭部 (02h = 02head) */
  2. #include <xsp2lib.h>
  3.  
  4. #include "../otoko.h"
  5. #include "../player.h"
  6. #include "../enemy.h"
  7. #include "../eshot.h"
  8. #include "../effect.h"
  9. #include "../priority.h"
  10. #include "../sound.h"
  11.  
  12.  
  13. #define SPEED_LASER        30
  14.  
  15. static short EnemyMoveLBoss02H (ENEMY *);
  16. static void EnemyTiniLBoss02H (ENEMY *);
  17.  
  18.  
  19. void EnemyInitLBoss02H (ENEMY * p)
  20. {
  21.     p->vx = 0;
  22.     p->vy = 0;
  23.     p->hit_px = p->hit_py = p->hit_sx = p->hit_sy = p->hit_cx = 0;
  24.     p->damage = 0;
  25.     p->flash = 0;
  26.     p->hp = 0;
  27.     p->pt = obj_lboss02 + 1;
  28.     p->seq = 0;
  29.     p->func_enemy_move = EnemyMoveLBoss02H;
  30.     p->func_enemy_tini = EnemyTiniLBoss02H;
  31.  
  32.     if (p->arg < 2) {
  33.         p->work4 = PALET_LBOSS02 | PRIORITY_BOSS;
  34.     } else {
  35.         p->work4 = PALET_LBOSS02_1 | PRIORITY_BOSS;
  36.         p->arg -= 2;
  37.     }
  38. }
  39.  
  40.  
  41.  
  42. static short EnemyMoveLBoss02H (ENEMY * p)
  43. {
  44.     /* 速度を足して上位ワード(固定整数部)だけ取り出す */
  45.     p->x = (p->lx += p->vx) >> 16;
  46.     p->y = (p->ly += p->vy) >> 16;
  47.  
  48.     if (SHORT_VY < 2)
  49.         p->vy += 4096;
  50.     switch (p->seq++) {
  51.     case 0:
  52.     case 8 + 15 * 1:
  53.     case 8 + 15 * 2:
  54.         EffectInit (EFFECT_EXPL, 0, p->x, p->y);
  55.         SoundSetSE (SE_EXPL);    /* 爆発音を鳴らす */
  56.         break;
  57.     case 8 + 15 * 4:
  58.         EffectInit (EFFECT_EXPL, 0, p->x, p->y);
  59.         SoundSetSE (SE_EXPL_M);    /* 爆発音を鳴らす */
  60.         if (p->arg == 0)
  61.             EffectInit (EFFECT_POINTS_RED, POINTS_2000, p->x, p->y);
  62.         if (disp_level == DISP_LEVEL_HIGH)
  63.             EffectInit (EFFECT_HAHENMINI, 0, p->x, p->y);
  64.         return (-1);    /* 消去 */
  65.         break;
  66.     }
  67.  
  68.     p->info = p->work4;
  69.     xobj_set_st (p);
  70.  
  71.  
  72.     return (0);
  73. }
  74.  
  75.  
  76. static void EnemyTiniLBoss02H (ENEMY * p)
  77. {
  78. }
  79.